Digital electronic systems have been applied to a great number of fields, for performing a wide variety of functions including monitoring, control and testing, and the processing, transmitting, receiving and handling of data. In many applications of digital systems, memory circuits are used for the storage of digital data, either on a short term or long term basis. One particular application for memories, to which the present invention is especially adapted, is the use of a temporary memory for the storage of volatile data. An example of this type of application is in association with a computer, wherein certain data and programs are stored in more or less permanent form, for example magnetic tape, but certain other data is stored for a short term in the electronic memory within the computer. This memory is said to be volatile, in the sense that in the case of a power interruption to the computer, the data previously stored in electronic memory would be lost. Recognizing the need for a way to preserve this volatile data in the event of a power interruption in order to avoid loss of data and the resulting disruption and complication in start-up procedure, the prior art has provided means for storing important volatile data in the event of such an interruption. In large digital computers, circuits are often provided for sensing an impeding loss of power supply, and for interrupting the normal program to save the contents of the volatile memory by transferring it quickly to a separate memory, or to magnetic memory in a brief instant before the loss disables the computer.
A similar need for storage of volatile data exists with respect to smaller computer systems, for example microprocessor systems, but cost consideration for user devices employing smaller computers or microprocessors often prevents use of the volatile memory storage techniques employed in larger computers. An example would be in a monitoring or control device employing a microprocessor. Typically, the program for the microprocessor, together with certain numerical constants or values employed in calculation in its program, are stored in some type of read only memory (ROM). The ROM is not affected by any interruption of power to the microprocessor, so the bulk of the program and important data is already in non-volatile memory. However, typically the microprocessor system receives certain operating data from sensors, for example, which data is to be counted, stored, displayed, or used in calculations, depending upon the intended use for the device. Such data is commonly stored in random access memory (RAM) within the microprocessor, and this type of electronic RAM memory is lost upon interruption of power to the microprocessor circuits. Such a power interruption might occur unexpectedly due to a failure somewhere in the source of power for the device, or it may occur intentionally as where the device is turned off for a period of time with the intention of resuming the same monitoring, calculations, process, etc. later using data previously developed.
With the development of complementary metal oxide semiconductor (CMOS) devices which are noted for their very low power drain, it has become common to provide an auxiliary CMOS memory for storage of data for a microprocessor, and the CMOS memory device can be powered from a separate small battery, or even from a large capacitor normally charged from the power supply but operative to supply energizing current to the CMOS memory for a certain period of time following removal of the main power supply. Although these techniques are generally successful, a problem still remains in that part of the data can be lost, or spurious data can be inserted in the memory due to voltage spikes or other transients occurring during shut-down or start-up of the mircoprocessor and associated components during and following a power failure. Also, in the case of a system operating on a vehicle such as a tractor, automobile, boat, airplane, etc. power is generally received from the vehicle's battery and generator or alternator, and these sources are notoriously noisy with interference and spurious signals that can interfere with the intended operation of the memory for the volatile data.